package com.sml.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;
import java.util.Map;

public class JwtUtil {
    private static final String key = "sml";

    /**
     * 接收业务数据，生成token并返回
     * @param claims
     * @return
     */
    public static String genToken(Map<String, Object> claims) {
        return JWT.create().withClaim("claims", claims)
                .withExpiresAt(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 12))
                .sign(Algorithm.HMAC256(key));
    }

    /**
     * 接收token,验证token，并返回token中的数据
     * @param token
     * @return
     */
    public static Map<String, Object> parseToken(String token) {
        return JWT.require(Algorithm.HMAC256(key)).build().verify(token).getClaim("claims").asMap();
    }

}
